package JAVACORE_TRAINING.OOPS_CONCEPTS.ARRAY_AND_COLLECTIONS.STATIC_ARRAYS.EXCERCISES.EX01;
import java.util.Scanner;

public class Views {
    public static void main(String[] args) {
        //1. Đưa ra yêu cầu đối với người dùng      
        double dValue = 0;
        Scanner sc = new Scanner(System.in);
        double[] temps  = new double[100];
        double[] myValue;
        int iCount = 0;
        int k = 0;
        
        //2. Nhập liệu vào biến mảng
        do{
            //Nhận giá trị
            System.out.println("+ Nhập giá trị (nhập số âm để thoát việc nhập): ");
            dValue = sc.nextDouble();
            
            //Kiểm tra giá trị đầu vào
            if(dValue > 0){
                temps[iCount] = dValue;
                iCount++;
            }
            k++;
        }while(dValue > 0 && k < temps.length); 
        
        //3. Hiển thị tập giá trị trong mảng        
        myValue = new double[iCount];
        System.arraycopy(temps, 0, myValue, 0, iCount);
        
        /*for(int i=0;i<iCount;i++){
            myValue[i] = temps[i];
        }*/
        
        //4. Khai báo và khởi tạo đối tượng để sử dụng các nghiệp bên trong nó
        Controllers objController = new Controllers();
        
        //5. Thực thi xử lý nghiệp vụ để nhận về tập giá trị TMDK >= 5
        //C1: Tường minh biến mảng nhận kq
        double[] kq = objController.FindValue(myValue, (short)0);
        
        //6. Hiển thị kết quả
        System.out.println("+ Số phần tử có giá trị >= 5 là: "+ kq.length);
        System.out.println("+ Các giá trị >= 5 dưới đây: ");
        for(double j : kq){
            System.out.println("+ Giá trị = "+ j);
         }                
        
        //7. Thực thi xử lý nghiệp vụ để nhận về tập giá trị TMDK < 5
        //C1: Tường minh biến mảng nhận kq
        double[] kq2 = objController.FindValue(myValue, (short)1);
        
        //6. Hiển thị kết quả
        System.out.println("+ Số phần tử có giá trị < 5 là: "+ kq2.length);
        System.out.println("+ Các giá trị < 5 dưới đây: ");
        for(double j : kq2){
            System.out.println("+ Giá trị = "+ j);
        }
    }
}
